The major goals of AppMaker 2.0 are customizability, extensibility, and portability. Almost all of AppMaker is soft-coded so that you can customize and extend it merely by changing or adding various definitions or descriptors. We've tried to achieve a high degree of portability by defining things in high-level abstract terms instead of low-level bits and bytes. You can use the same AppMaker document for programming with PowerPlant, TCL, procedurally, or with OpenDoc. Eventually, you should be able to take that same AppMaker document to another platform (e.g. MS/Windows) and generate an application for that platform (or to cross-generate to one platform from another platform).
Major new features (vs. 1.5)
-------------------------
• customizability
• extensibility
• portability
• simulator
• color
• floating Tools palette—replaces Tools menu
• outline window—replaces Select menu
• Drag&Drop
• many new gadgets
• support for PowerPlant and for OpenDoc
AppMaker document format
------------------------
Previous versions of AppMaker stored the user interface design as a Macintosh resource file for a specific target language, e.g. as TCL 'pane' resources. This format is not easily ported to a non-Macintosh platform, or even to a different environment, e.g. PowerPlant, that uses completely different resource types.
In AppMaker 2, the UI design is stored in a data file that is largely independent of any particular resource format or language or platform. The description is more abstract, less tied to a particular target language, than in previous AppMakers. For example, in TCL, MacApp, and PowerPlant there is a concept of "stickiness" that specifies what happens to a view when its superview is resized. The specification and implementation of this concept is quite different in these three frameworks, but at an abstract level they all have the same concept. AppMaker 2 provides an abstract specification of stickiness. The resource generator and the source code generator tailor the abstract concept to the specific bits and bytes needed for a particular target language.
Another example: TCL has several variations of editable text such as CEditText, CDialogText, CIntegerText, and CStyleText. MacApp has TEditText, TNumberText, and TTEView. PowerPlant has LEditField and LTextEdit. In most view editors all of these variations are treated as distinct widgets. In AppMaker 2, there is just a single EditText widget. A user can specify various characteristics of this item. AppMaker's generator analyzes the user-defined characteristics and then generates the particular resources or source code to implement a particular language's variation of edit text.
The AppMaker document format is not only portable, it is also customizable and extensible. We've defined a wide variety of things that can be stored in an AppMaker document. Users can define many other kinds of information to be stored along with user interface items in the document.
outline window
--------------
A new window replaces the old Select menu and the old List Window. It displays the contents of the file in an outline format. As in the Finder, each item can be opened either to an indented list or to a separate window. Among other uses, the outline window is useful for displaying and editing the view hierarchy and for selecting overlapped window items. The content and format of an outline window can be customized and extended by the user. AppMaker 2 edits much more than the Menus, Windows, Dialogs, and Alerts of previous versions.
floating windows
---------------
A Tools palette replaces the old Tools menu. Other palettes display the drawing style, text style, or coordinates of selected item(s). The contents of the Tools palette can be customized and extended by the user. Users can specify new widgets for AppMaker 2 to create and edit.
Item Info
--------
Displays item-specific information about the selected item(s). Replaces the generic Item Info which displayed little more than coordinates. The old Window Info (etc.) and Item Info commands are merged into a single Item Info command. A separate floating window displays coordinates of the selected item. The content and format of each Item Info dialog is completely customizable by the user. Users can specify all sorts of additional information to be stored with each item.
Open Properties
--------------
Provides access to less-commonly used attributes ("properties") of items. (The Item Info dialog provides convenient access to the more important properties of an item.) The property editor can edit all of the properties of an item. Users can define additional properties (including code fragments) of items. Users can modify the Item Info dialogs to display and edit these additional properties.
simpler window items
--------------------
You can create a simple radio group as a single item, then enter the various choices and AppMaker will create the radio buttons for you. Similarly, you can create a popup menu and simply enter a list of values rather than create a separate Menu. AppMaker will create the Menu for you. "Scrollability" is a property of a window item. Rather than creating a scroller object with an embedded edit text object, you just create an edit text object, then specify that it have a scroll bar.
simulator
---------
Shows you how the selected item (e.g. a modal dialog) will look and behave at runtime. Currently, only windows and dialogs are simulated.